/*
* forEach函数列子，以下特性总结：
*   1.不改变原数组
*   2.forEach不返回原数组
*   注意：他的函数里面参数的顺序
*/
var arr=[1,3,5,7,9];
//测试之后forEach只能遍历数组，他是数组的一个方法
//他的函数三个参数，第一个必须为value，index,arr 是数组本身，后两个为可选
var time=new Date();
console.log(time);
var a=arr.forEach(function(value,index,arr){
    value+=2;
    console.log("["+index+"]:"+value+"  "+arr);
},)
console.log(new Date()-time);
//forEach不返回东西，所以返回为undefined
console.log(a);
//不改变原来数组，在执行完函数之后
console.log(arr);
/*
* map方法（和forrEach方法很像）
*   1.不改变原数组
*   2.map不返回原数组
*   注意：他的函数里面参数的顺序
*   他两都是Es5里面的方法
*   然后测试了一下，map方法和forEach方法的效率，从时间上来说，map更快
*/
var ccc=new Date();
var b=arr.map(function(value,index){
    value*=2;
    console.log(value+"   "+index);
})
console.log(new Date()-ccc);
//不返回数组，[ undefined, undefined, undefined, undefined, undefined ]
console.log(b);
//不改变数组
console.log(arr);
/*
*   each
*   1.返回值为数组本身
*   2.不改变数组本身
*   3.他回调函数里面和forEach不一样
*
*/
/*
var a=$.each(arr,function(index,value){
    value*=2;
    console.log(index+"  "+value);
});
//返回值为数组本身
console.log(arr);
//不改变原数组
console.log(a);
 */